home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 09 Application Software / GC1.SDA / TRNSFR LOCATIONS (.txt) < prev   
Commodore BASIC  |  2019-04-13  |  4KB  |  169 lines

  1. 100 REM\ TRANSFER LOCATIONS PROGRAM
  2. 200 REM\ WRITTEN BY KURT BRANDON
  3. 300 DIMX$(300),SD$(300)
  4. 400 POKE53281,1:POKE53280,7:POKE646,0
  5. 500 XR=PEEK(186):NL=14:BF$="                                    ":RT$=CHR$(13)
  6. 600 MD$=""
  7. 700 PRINT"[147]       TRANSFER LOCATIONS"
  8. 800 INPUT"     MERGE FILE DRIVE";MF
  9. 900 IFMF<8ORMF>11THENPRINT"[145][145][145][145]":GOTO800
  10. 1000 INPUT" LOCATIONS FILE DRIVE";DN
  11. 1100 IFDN<8ORDN>11THENPRINT"[145][145]":GOTO1000
  12. 1200 MB$="W":OPEN15,DN,15,"I0":OPEN14,MF,15
  13. 1300 OPEN2,MF,2,"MERGE FILE,S,R"
  14. 1400 INPUT#14,EN,ET$,ET,ES:CLOSE2
  15. 1500 IFEN=62THEN4200
  16. 1600 PRINT"[147] MERGE FILE EXISTS"
  17. 1700 PRINT" CHOOSE ONE"
  18. 1800 PRINT" 1) READ IT"
  19. 1900 PRINT" 2) SCRATCH IT"
  20. 2000 PRINT" 3) APPEND TO IT"
  21. 2100 PRINT" 4) QUIT"
  22. 2200 CN=0:INPUT" CHOICE";CN:CN=ABS(INT(CN))
  23. 2300 IFCN<1ORCN>4THENPRINT"[145][145][145]":GOTO2200
  24. 2400 ONCNGOTO2500,4000,4100,15000
  25. 2500 RC=0:PRINT"[147]":OPEN2,MF,2,"MERGE FILE,S,R"
  26. 2600 GET#2,A$,A$,A$,A$:IFST=>64THEN PRINT"  MERGE FILE IS EMPTY":GOTO3600
  27. 2700 CLOSE2:OPEN2,MF,2,"MERGE FILE,S,R"
  28. 2800 GOSUB20000:INPUT#2,PL$,LA$,LO$:RC=RC+1
  29. 2900 PRINT""PL$:PRINT"   "LA$:PRINT"   "LO$
  30. 3000 IFPEEK(653)<>0THEN3000
  31. 3100 GETA$:IFA$="Q"THENWAIT203,64:GOTO3600
  32. 3200 IFST=0THENFORZ=1TO150:NEXT: GOTO2800
  33. 3300 PRINT:PRINT"     [195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
  34. 3400 PRINT"        "RC"RECORDS"
  35. 3500 PRINT"     [195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]":PRINT
  36. 3600 CLOSE2
  37. 3700 POKE198,0:PRINT"    - ANY KEY TO EXIT -"
  38. 3800 GETA$:IFA$=""THEN3800
  39. 3900 GOTO1600
  40. 4000 PRINT#14,"S0:MERGE FILE":MB$="W":GOTO4200
  41. 4100 MB$="A"
  42. 4200 PRINT"[147] SELECT SEARCH MODE"
  43. 4300 PRINT" 1[144] MANUAL SEARCH"
  44. 4400 PRINT" 2[144] AUTO SEARCH FOR TEXT STRING"
  45. 4500 PRINT" 3[144] QUIT"
  46. 4600 A$="":INPUT"  CHOICE";A$:IFA$=""THEN15100
  47. 4700 IFA$<"1"ORA$>"3"THENPRINT"[145][145][145][145]":GOTO4600
  48. 4800 IFA$="2"THEN8600
  49. 4900 IFA$="3"THEN15000
  50. 5000 :
  51. 5100 REM\ MANUAL SELECT
  52. 5200 PRINT"[147]      SELECT FILE TO LOAD"
  53. 5300 PRINT"      -- RETURN[144] TO QUIT --"
  54. 5400 F$="":INPUT"             ";F$:IFF$=""THENCLOSE2:GOTO15100
  55. 5500 IFF$<"A"ORF$>"Z"THENPRINT"[145][145]":GOTO5400
  56. 5600 FORI=1TO300:X$(I)="":NEXT
  57. 5700 OPEN8,DN,8,F$:RN=1:GOSUB12400:GOSUB12400:INPUT#8,MN
  58. 5800 FORRN=2TOMN:GOSUB12400:GOSUB12400:GOSUB20000:INPUT#8,PL$,LA$,LO$
  59. 5900 X$(RN-1)=PL$+RT$+LA$+RT$+LO$
  60. 6000 NEXT:CLOSE8:MN=MN-1
  61. 6100 OPEN2,MF,2,"MERGE FILE,S,"+MB$:MB$="A"
  62. 6200 FORI=1TO300:SD$(I)=" ":NEXT
  63. 6300 PO=1:A=1:B=NL:GOSUB15500:KK=1:GOSUB8000
  64. 6400 :
  65. 6500 GETA$:IFA$=""THEN6500
  66. 6600 IFA$=""ANDX$(A+NL-1)=""THENA=1:B=NL:GOSUB15500:KK=1:GOSUB8000:GOTO6500
  67. 6700 IFA$=""THENA=A+NL:B=B+NL:GOSUB15500:KK=1:GOSUB8000
  68. 6800 IFA$="[157]"THENIFA=1THEN6500
  69. 6900 IFA$="[157]"THENA=A-NL:B=B-NL:GOSUB15500:KK=1:GOSUB8000:GOTO6500
  70. 7000 IFA$=""THENIFKK=NLTHEN6500
  71. 7100 IFA$=""THENKK=KK+1:GOSUB8000:GOTO6500
  72. 7200 IFA$="[145]"THENIFKK=1THEN6500
  73. 7300 IFA$="[145]"THENKK=KK-1:GOSUB8000:GOTO6500
  74. 7400 IFA$=RT$THENSD$(A+KK-1)=CHR$(32-10*(ASC(SD$(A+KK-1))=32)):GOSUB8100
  75. 7500 IFA$="[133]"THENFORYY=ATOB:SD$(YY)="*":NEXT:GOSUB15500:GOSUB8000:GOTO6500
  76. 7600 IFA$="[137]"THENFORYY=ATOB:SD$(YY)=" ":NEXT:GOSUB15500:GOSUB8000:GOTO6500
  77. 7700 IFA$="R"THENCLOSE2:GOTO5200
  78. 7800 IFA$="W"THEN8200
  79. 7900 GOTO6500
  80. 8000 PRINTLEFT$(MD$,KS)" ":PRINTLEFT$(MD$,KK+1)">":KS=KK+1:RETURN
  81. 8100 PRINT"":FORZ=ATOB:PRINT""SD$(Z):NEXT:RETURN
  82. 8200 FORI=1TOMN
  83. 8300 GOSUB20000:IFSD$(I)="*"THENPRINT#2,X$(I)
  84. 8400 NEXT:CLOSE2:MB$="A":GOTO5200
  85. 8500 :
  86. 8600 PRINT"[147] TEXT SEARCH MODE"
  87. 8700 GOSUB11400
  88. 8800 PRINT"    \[144] WILL CLOSE MERGE"
  89. 8900 PRINT"      FILE AND RETURN TO MENU"
  90. 9000 INPUT" SEARCH STRING";CF$
  91. 9100 IFCF$="\"THEN15100
  92. 9200 PRINT" SEARCH STRING IS: "CF$"[146]"
  93. 9300 INPUT"  CORRECT (Y/N)  Y[157][157][157]";CO$
  94. 9400 IFCO$<>"N"ANDCO$<>"Y"THENPRINT"[145][145][145]":GOTO9300
  95. 9500 IFCO$="N"THEN9000
  96. 9600 OPEN2,MF,2,"MERGE FILE,S,"+MB$
  97. 9700 FORI=SFTOEF
  98. 9800 OPEN8,DN,8,CHR$(I)
  99. 9900 RN=1:GOSUB12400:GOSUB12400:INPUT#8,MN
  100. 10000 FORRN=2TOMN
  101. 10100 GOSUB12400:GOSUB12400:GOSUB20000:INPUT#8,MS$,LA$,LO$
  102. 10200 GOSUB14000:IFRV=1THEN10600
  103. 10300 GETA$:IFA$="\"THEN15100
  104. 10400 PRINT""MS$"[144]":PRINT"[145][145]":GOTO10900
  105. 10500 IFA$="\"THEN15100
  106. 10600 PRINT""MS$"[144]":PRINT#2,MS$
  107. 10700 PRINT#2,LA$
  108. 10800 PRINT#2,LO$
  109. 10900 NEXT
  110. 11000 CLOSE8
  111. 11100 NEXT
  112. 11200 PRINT"[145]":PRINTBF$
  113. 11300 GOTO15100
  114. 11400 INPUT" STARTING AT FILE  A  [157][157][157][157][157]";SF$
  115. 11500 IFLEN(SF$)<>1THENPRINT"[145][145]":GOTO11400
  116. 11600 IFSF$<"A"ORSF$>"Z"THENPRINT"[145][145]":GOTO11400
  117. 11700 INPUT"   ENDING AT FILE  Z  [157][157][157][157][157]";EF$
  118. 11800 IFLEN(EF$)<>1THENPRINT"[145][145]":GOTO11700
  119. 11900 IFEF$<"A"OREF$>"Z"THENPRINT"[145][145]":GOTO11700
  120. 12000 SF=ASC(SF$):EF=ASC(EF$):RETURN
  121. 12100 :
  122. 12200 :
  123. 12300 REM\ POSITION/ERROR SUB
  124. 12400 RH=INT(RN/256):RL=RN-(256*RH)
  125. 12500 PRINT#15,"P"+CHR$(96+8)+CHR$(RL)+CHR$(RH)+CHR$(1)
  126. 12600 INPUT#15,E,E$,AA,B
  127. 12700 IF E=0ORE=50THENRETURN
  128. 12800 PRINTE;E$;AA;B:CLOSE8:CLOSE15:END
  129. 12900 :
  130. 13000 :
  131. 13100 REM\ STRING COMPARE SUB
  132. 13200 REM  VALUES RETURNED IN RV
  133. 13300 REM  0 - SUBSTRING NOT FOUND
  134. 13400 REM  1 - SUBSTRING FOUND
  135. 13500 REM  2 - SUBSTRING LONGER THAN MAIN STRING
  136. 13600 :
  137. 13700 REM CF$=SUBSTRING TO BE COMPARED
  138. 13800 REM MS$=MAIN STRING
  139. 13900 :
  140. 14000 RV=0:A=LEN(CF$):B=LEN(MS$)
  141. 14100 IFA>BTHENRV=2:RETURN
  142. 14200 IFA<>BTHEN14500
  143. 14300 IFMS$=CF$THENRV=1
  144. 14400 RETURN
  145. 14500 D=B-A+1
  146. 14600 FORC=1TOD
  147. 14700 IFCF$=MID$(MS$,C,A)THENRV=1:C=D
  148. 14800 NEXT:RETURN
  149. 14900 :
  150. 15000 FORI=1TO15:CLOSEI:NEXT:LOAD"LOAD & RUN",XR
  151. 15100 FORI=1TO15:CLOSEI:NEXT:GOTO1200
  152. 15200 :
  153. 15300 :
  154. 15400 REM\ DISPLAY SUB
  155. 15500 PRINT"[147]"
  156. 15600 FORZ=ATOB
  157. 15700 PRINT""SD$(Z);LEFT$(X$(Z),30)
  158. 15800 NEXT
  159. 15900 PRINT"- - - - - - - - - - - - - - - - -"
  160. 16000 PRINT"CRSR LEFT/RIGHT [144]PAGE"
  161. 16100 PRINT"   CRSR UP/DOWN [144]MOVE POINTER"
  162. 16200 PRINT"         RETURN[144] TOGGLE SELECTION"
  163. 16300 PRINT"             F1[144] SELECT ALL ON SCREEN"
  164. 16400 PRINT"             F2[144] DESELECT ALL ON SCREEN"
  165. 16500 PRINT"              R[144] FILE SELECT SCREEN"
  166. 16600 PRINT"              W[144] WRITE TO MERGE FILE":RETURN
  167. 20000 IFPEEK(52)<PEEK(50)+3THENYX=FRE(0)
  168. 20010 RETURN
  169.